I was quiet about it for a long time, but here it is: my first Summer of Code status report. For a bigger picture: I am working on a graphical front-end to the bug tracking system Debian uses. Well, at least I am supposed to work on it. First on my list was something else: a Gtk2 graphical front-end for the well-known bug reporting tool "
reportbug", which
might later be integrated somehow into Debian's Gnome environment.
According to the list of milestones I created when I drafted the application in less than an hour (due to the deadline approaching) I need to release a first prototype of such a GUI today. It took more time than expected to work on it, so I have not yet started any work on the main graphical front-end. I started a few days later than expected, due to some delay until the approved applications were published and I also had to learn Python from scratch. This task was not too hard, but I am still often confused by the lack of consistency throughout the language. Compared to
Ruby, a language I know reasonably well and in which I already coded much, Python has much more syntactic constructs for primitives and in my opinion this leads to a lack of consistency. But well, one gets used to it...
There was once a "original" Gnome front-end, but it is discontinued since some years already. I did not look much at it, neither at the patch in the BTS which should basically bring it to the current Gnome2 libraries. To properly understand the hooks I need to provide for an interface plugin I started from scratch, only reusing the core idea of the old front-end: the use of the
GnomeUI Druid. The new
GtkAssistant is not yet ready to be deployed, being introduced with the upcoming Gtk 2.10 release. Still I have a weird feeling about the Gnome Druid, because I abuse it just to provide a consistent look.
reportbug does not support backing up to a previous question, so the
Back button is generally deactivated.
I tried to modify core code as few as possible, as I have not yet talked with the
reportbug maintainer Chris Lawrence. I will do so in due course. However after the old GUI front-end code was basically discarded (its usage is discouraged with a prominent notice), many changes to the core code did only take the text interface into account. (Well, I just suppose this, I did not do much research into
reportbug's past.) So some
tiny changes were needed to provide a few more hooks. There are, however, more to come, especially in connection with one input type (
select_options, which could often be implemented as presenting a simple yes/no dialogue).
The configuration basically works already, as seen below. What does not work are spawing the right editor and getting a filename from the user interface. But those are minor quirks and not too hard to fix. I need to develop in the open, as specified by the Summer of Code ruleset, and now I could do so, after about four rewrites of the GUI code. The main GUI loop is now in a thread, receiving commands from the main thread running the logic and sending the input back through a
queue. (I used a pipe-based approach first, using an IO selector provided by glib, but it did not work well enough and this approach is far simpler.)
So
the current version is not vapourware, but there is still some more work to do to get it really usable. I will put my work into the Summer of Code Subversion repository as soon as the necessary access privileges are synced onto
costa, an
Alioth machine. Hopefully it will be merged into
reportbug when I completely finished off this project.